#ifndef __STACK_EXT_H_H_
#define __STACK_EXT_H_H_

#include "stdint.h"

#ifdef __cplusplus
extern "C"
{
#endif

	typedef struct
	{
		uint16_t site_put; 
		uint16_t site_get; 
		uint16_t size;
		void *dat;
	} fifo_quene_type;

	int8_t fifo32_put(fifo_quene_type *obj, uint32_t dat_in);	
	int8_t fifo32_get(fifo_quene_type *obj, uint32_t *dat_out); 
	int8_t fifo16_put(fifo_quene_type *obj, uint16_t dat_in);	
	int8_t fifo16_get(fifo_quene_type *obj, uint16_t *dat_out); 
	int8_t fifo08_put(fifo_quene_type *obj, uint8_t dat_in);	
	int8_t fifo08_get(fifo_quene_type *obj, uint8_t *dat_out);	
	uint16_t fifo_amount(fifo_quene_type *obj);

	typedef struct
	{
		uint16_t site; 
		uint16_t size;
		void *dat;
	} stack_quene_type;

	int8_t stack32_put(stack_quene_type *obj, uint32_t dat_in);	  
	int8_t stack32_get(stack_quene_type *obj, uint32_t *dat_out); 
	int8_t stack16_put(stack_quene_type *obj, uint16_t dat_in);	  
	int8_t stack16_get(stack_quene_type *obj, uint16_t *dat_out); 
	uint16_t stack_amount(stack_quene_type *obj);

#ifdef __cplusplus
}
#endif

#endif 
